package com.lanchetech.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 订单商品明细
 */
@ApiModel(value = "订单商品明细")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OrderSku implements Serializable {
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private Long id;

    /**
     * 订单id
     */
    @ApiModelProperty(value = "订单id")
    private Long orderId;

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    private Long userId;

    /**
     * 商品SPU id
     */
    @ApiModelProperty(value = "商品SPU id")
    private Long spuId;

    /**
     * 商品SKU id
     */
    @ApiModelProperty(value = "商品SKU id")
    private Long skuId;

    /**
     * 购买数量
     */
    @ApiModelProperty(value = "购买数量")
    private Integer count;

    /**
     * 支付商品的单价
     */
    @ApiModelProperty(value = "支付商品的单价")
    private BigDecimal price;

    /**
     * 支付金额
     */
    @ApiModelProperty(value = "支付金额")
    private BigDecimal payAmount;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updatedAt;

    /**
     * 交易参与活动类型
     */
    @ApiModelProperty(value = "交易参与活动类型")
    private String activityType;

    /**
     * 商品订单评价id
     */
    @ApiModelProperty(value = "商品订单评价id")
    private Long commentId;

    /**
     * 售后服务id
     */
    @ApiModelProperty(value = "售后服务id")
    private Long afterSaleId;

    /**
     * 应付单价
     */
    @ApiModelProperty(value = "应付单价")
    private BigDecimal defaultPrice;

    /**
     * 订单状态(与交易订单状态同步) 0 未付款 1 已取消 2 已付款 3 待评价 4 已完成 5 已关闭
     */
    @ApiModelProperty(value = "订单状态(与交易订单状态同步) 0 未付款 1 已取消 2 已付款 3 待评价 4 已完成 5 已关闭")
    private Byte status;

    /**
     * 活动id
     */
    @ApiModelProperty(value = "活动id")
    private Long activityId;

    /**
     * 商品名称(冗余)
     */
    @ApiModelProperty(value = "商品名称(冗余)")
    private String productName;

    /**
     * 发货状态 0 未发货 1 已发货 2 已签收
     */
    @ApiModelProperty(value = "发货状态 0 未发货 1 已发货 2 已签收")
    private Byte logisticsStatus;

    /**
     * 购买类型 0 门店销售 1 线上销售-快递 2 线上销售-自提
     */
    @ApiModelProperty(value = "购买类型 0 门店销售 1 线上销售-快递 2 线上销售-自提")
    private Byte orderType;

    /**
     * 核销状态 0 未核销 1 已核销
     */
    @ApiModelProperty(value = "核销状态 0 未核销 1 已核销")
    private Byte verifyStatus;

    /**
     * 核销时间
     */
    @ApiModelProperty(value = "核销时间")
    private Date verifyTime;

    /**
     * 核销的门店id
     */
    @ApiModelProperty(value = "核销的门店id")
    private Long verifyShopId;

    /**
     * 核销的店员的用户id
     */
    @ApiModelProperty(value = "核销的店员的用户id")
    private Long verifyClerkId;

    /**
     * 商家编号
     */
    @ApiModelProperty(value = "商家编号")
    private Long shopId;

    /**
     * 预约时间
     */
    @ApiModelProperty(value = "预约时间")
    private Date appointmentTime;

    /**
     * 直推上级用户编号
     */
    @ApiModelProperty(value = "直推上级用户编号")
    private Long inviteUserId;

    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    private Long tenantId;

    /**
     * 商户结算金额（单个订单明细商品）
     */
    @ApiModelProperty(value = "商户结算金额（单个订单明细商品）")
    private BigDecimal tenantAmount;

    /**
     * 主播用户id
     */
    @ApiModelProperty(value = "主播用户id")
    private Long anchorUserId;

    /**
     * 订单种类
     */
    @ApiModelProperty(value = "订单种类")
    private Byte orderKind;

    /**
     * 抢购状态 0 待成团 1 抢购成功 2 抢购失败 3 已取消
     */
    @ApiModelProperty(value = "抢购状态 0 待成团 1 抢购成功 2 抢购失败 3 已取消")
    private Byte rushBuyStatus;

    /**
     * 抢购订单号
     */
    @ApiModelProperty(value = "抢购订单号")
    private String rushBuyNo;

    /**
     * 抢购类型 0 抢购免单 1 直接购买
     */
    @ApiModelProperty(value = "抢购类型 0 抢购免单 1 直接购买")
    private Byte rushType;

    /**
     * 是否为分享赚商品
     */
    private boolean share;
    /**
     * 分享人ID
     */
    private long beneficiaryUserId;
    /**
     * 分享赚标识
     */
    private long shareActivityId;
    /**
     * 小程序计算金额
     */
    private BigDecimal miniCommissionScaleRebate = BigDecimal.ZERO;
    private BigDecimal miniHiCoinScaleRebate = BigDecimal.ZERO;
    // 佣金
    private BigDecimal commissionScaleRebate = BigDecimal.ZERO;
    // 嗨币
    private BigDecimal hiCoinScaleRebate = BigDecimal.ZERO;
    // 分享赚spuId
    private long shareActivitySpuId;
    // 分享人
    private long shareUserId;
    /**
     * 折扣金额
     */
    private BigDecimal discountPrice = BigDecimal.ZERO;

    private static final long serialVersionUID = 1L;
}